| Proposed by Felipe Bañados (profile, biography) Don't forget to submit this proposal to official Google Melange site too! 
 
 
 How will I do that projectThe project is articulated essentially around three main points.  First, getting involved into the Smalltalk community and the development  of Pharo. Second, I'll look for a visualization that can take into  account the evolution of the software (version comparison and historical  evolution) with several levels of detail, and using it into a real case  study to optimize a software (a first goal is to identify problems on  Mondrian itself, since its performance during the last months has  decreased a little.). The third goal is to go beyond the visualization  and improve the profiling tool. What methodologies will I useCollaborative work with a Mentor. Studying at the same place  Alexandre Bergel and others work will make meeting easy. Starting from  the present state of software (mainly the Spy and Kai framework), make  iterative improvements to design and develop around 3 different  visualizations to assess  version evolution. After that, profile a package and obtain metrics to look for  improvement on it's code, ideally Metacello, an essential element of the  Pharo package system. Discussion of new ideas and meeting to evaluate progress in the  project will combine with self learning and coding. Suggested timeline and milestones0.- Learning Pharo (Pharo By Example, done), Mondrian and  understanding the present code. 1 - Define the visualization for two different snapshots (for the  same input). This implies finding colors and layout (may be tricky to  get it right). 2 - Have a small running example based on Mondrian.  Pick two different versions to exemplify the visualization
 3 - Doing a  small but useful case study.  Based on Metacello. Apparently, it spends  a lot of time to identify the order of package loading.
 3.1 -  finding improvement
 3.2 - testing the visualization
 3.3 - identifying bottlenecks, room for improvement
 4 - Extend the two snapshots visualization to the entire history of  the code. 5 - (Extra) Try to visualize the behavior of the same instance of  code with different inputs. Where I see the risks- Time delay in getting used to program in Smalltalk (Pharo), and  understanding the present implementation of profiling and it's  visualization. - University obligations and lack of time at moments. - Difficulty to significantly optimize the case study. How the results will look like-A first reference might be Fig. 14 of Gîrba and Ducasse's "Modeling  History to Analyze Software Evolution" paper, but part of the proposal  is to find a compellig way to express the results. However, it will be a  Mondrian visualization. Other inspiring example is in the project  description. 
 |